package SEG_DataLayer;

import CommonDataLayer.ConexionDB;
import SEG_EntityLayer.*;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;

public class SEG_UsuarioDL {
    
    private final static SEG_UsuarioDL _instancia = new SEG_UsuarioDL();
    
    private SEG_UsuarioDL() {
        
    }
    
    public static SEG_UsuarioDL getInstancia() {
        return _instancia;
    }
    
    //-----------------------------------------------------------------------------
    // <editor-fold defaultstate="collapsed" desc="Select">
    
        /**
        * Verifica los datos del login y devuelvo información del usuario.
        * @return  un <code>SEG_UsuarioEL</code> con los datos del usuario.
        * @author Juan Manuel Abanto Mera
        */
        public SEG_UsuarioEL ObtenerDatosUsuario(String login, String clave) throws Exception {
            Connection conexion = null;
            try {
                conexion = ConexionDB.getInstancia().getConexion();
                CallableStatement sp = conexion.prepareCall("{call uspSEG_ObtenerDatosLogin(?,?) }");
                sp.setString("prmstrLogin", login);
                sp.setString("prmstrClave", clave);
                ResultSet rs = sp.executeQuery();
                
                SEG_UsuarioEL usuario = null;
                if ( rs.next() ) {
                    usuario = new SEG_UsuarioEL();
                    usuario.setUsuario(rs.getShort("Usuario"));
                    usuario.setLogin(rs.getString("Login"));
                    usuario.setNombres(rs.getString("Nombres"));
                    usuario.setActivo(rs.getBoolean("Activo"));
                }
                return usuario;
            }
            catch(Exception ex) {
                throw new Exception(ex);
            }
            finally {
                if (conexion != null && !conexion.isClosed()) {
                    conexion.close();
                }
            }
        }
    
    // </editor-fold>
    
    //-------------------------------------------------------------------------------
    // <editor-fold defaultstate="collapsed" desc="Insert">
    // </editor-fold>
    
    //-------------------------------------------------------------------------------
    // <editor-fold defaultstate="collapsed" desc="Update">
    // </editor-fold>
    
    //------------------------------------------------------------------------------    
    // <editor-fold defaultstate="collapsed" desc="Delete">
    // </editor-fold>
}
